<!DOCTYPE HTML>
<html lang="zh-hans" >
    <!-- Start book Python基础 -->
<!-- Start book Python基础 -->
    <head>
        <!-- head:start -->
<!-- head:start -->
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <title>继承的注意使用 | Python基础</title>
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <meta name="description" content="">
        <meta name="generator" content="GitBook 2.6.7">
        <meta name="author" content="姜伟">
        
        <meta name="HandheldFriendly" content="true"/>
        <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
        <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
        
    <link rel="stylesheet" href="gitbook/style.css">
    
        
        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-prism/prism.css">
        
    
        
        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-splitter/splitter.css">
        
    
        
        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-toggle-chapters/toggle.css">
        
    
        
        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-highlight/website.css">
        
    
        
        <link rel="stylesheet" href="gitbook/plugins/gitbook-plugin-fontsettings/website.css">
        
    
    

        
    
    
    <link rel="next" href="./chapter05.html" />
    
    
    <link rel="prev" href="./chapter03.html" />
    

        <!-- head:end -->
<!-- head:end -->
    </head>
    <body>
        <!-- body:start -->
<!-- body:start -->
        
    <div class="book"
        data-level="4"
        data-chapter-title="继承的注意使用"
        data-filepath="chapter04.md"
        data-basepath="."
        data-revision="Sun Feb 23 2020 13:59:40 GMT+0800 (CST)"
        data-innerlanguage="">
    

<div class="book-summary">
    <nav role="navigation">
        <ul class="summary">
            
            
            
            

            

            
    
        <li class="chapter " data-level="0" data-path="index.html">
            
                
                    <a href="./index.html">
                
                        <i class="fa fa-check"></i>
                        
                        学习目标
                    </a>
            
            
        </li>
    
        <li class="chapter " data-level="1" data-path="chapter01.html">
            
                
                    <a href="./chapter01.html">
                
                        <i class="fa fa-check"></i>
                        
                            <b>1.</b>
                        
                        类方法和实例方法
                    </a>
            
            
        </li>
    
        <li class="chapter " data-level="2" data-path="chapter02.html">
            
                
                    <a href="./chapter02.html">
                
                        <i class="fa fa-check"></i>
                        
                            <b>2.</b>
                        
                        单例设计模式
                    </a>
            
            
        </li>
    
        <li class="chapter " data-level="3" data-path="chapter03.html">
            
                
                    <a href="./chapter03.html">
                
                        <i class="fa fa-check"></i>
                        
                            <b>3.</b>
                        
                        继承的基本使用
                    </a>
            
            
        </li>
    
        <li class="chapter active" data-level="4" data-path="chapter04.html">
            
                
                    <a href="./chapter04.html">
                
                        <i class="fa fa-check"></i>
                        
                            <b>4.</b>
                        
                        继承的注意使用
                    </a>
            
            
        </li>
    
        <li class="chapter " data-level="5" data-path="chapter05.html">
            
                
                    <a href="./chapter05.html">
                
                        <i class="fa fa-check"></i>
                        
                            <b>5.</b>
                        
                        对象相关的运算符和内置函数
                    </a>
            
            
        </li>
    
        <li class="chapter " data-level="6" data-path="chapter06.html">
            
                
                    <a href="./chapter06.html">
                
                        <i class="fa fa-check"></i>
                        
                            <b>6.</b>
                        
                        多态的使用
                    </a>
            
            
        </li>
    


            
            <li class="divider"></li>
            <li>
                <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
                    本书使用 GitBook 发布
                </a>
            </li>
            
        </ul>
    </nav>
</div>

    <div class="book-body">
        <div class="body-inner">
            <div class="book-header" role="navigation">
    <!-- Actions Left -->
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href="./" >Python基础</a>
    </h1>
</div>

            <div class="page-wrapper" tabindex="-1" role="main">
                <div class="page-inner">
                
                
                    <section class="normal" id="section-">
                    
                        <p>&#x5728;Python&#x4E2D;&#xFF0C;&#x7EE7;&#x627F;&#x53EF;&#x4EE5;&#x5206;&#x4E3A;&#x5355;&#x7EE7;&#x627F;&#x3001;&#x591A;&#x7EE7;&#x627F;&#x548C;&#x591A;&#x5C42;&#x7EE7;&#x627F;&#x3002;</p>
<h2 id="&#x5355;&#x7EE7;&#x627F;&#xFF1A;&#x5B50;&#x7C7B;&#x53EA;&#x7EE7;&#x627F;&#x4E00;&#x4E2A;&#x7236;&#x7C7B;">&#x5355;&#x7EE7;&#x627F;&#xFF1A;&#x5B50;&#x7C7B;&#x53EA;&#x7EE7;&#x627F;&#x4E00;&#x4E2A;&#x7236;&#x7C7B;</h2>
<p>&#x7EE7;&#x627F;&#x6982;&#x5FF5;&#xFF1A;&#x5B50;&#x7C7B;&#x7528;&#x4E8E;&#x7236;&#x7C7B;&#x7684;&#x6240;&#x6709;&#x7684;&#x65B9;&#x6CD5;&#x548C;&#x5C5E;&#x6027;&#x3002;</p>
<p><img src="imgs/&#x7EE7;&#x627F;&#x5BF9;&#x6BD4;&#x56FE;&#x793A;.png" alt=""></p>
<p>&#x7EE7;&#x627F;&#x8BED;&#x6CD5;:</p>
<pre><code class="lang-python"><span class="hljs-class"><span class="hljs-keyword">class</span> &#x7C7B;&#x540D;<span class="hljs-params">(&#x7236;&#x7C7B;&#x540D;)</span>:</span>
    <span class="hljs-keyword">pass</span>
</code></pre>
<ul>
<li>&#x5B50;&#x7C7B;&#x7EE7;&#x627F;&#x81EA;&#x7236;&#x7C7B;&#xFF0C;&#x53EF;&#x4EE5;&#x4EAB;&#x53D7;&#x7236;&#x7C7B;&#x4E2D;&#x5DF2;&#x7ECF;&#x5C01;&#x88C5;&#x597D;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x4E0D;&#x9700;&#x8981;&#x518D;&#x6B21;&#x5B9A;&#x4E49;</li>
<li>&#x5B50;&#x7C7B;&#x4E2D;&#x5E94;&#x8BE5;&#x6839;&#x636E;&#x804C;&#x8D23;&#xFF0C;&#x5C01;&#x88C5;&#x5B50;&#x7C7B;&#x7279;&#x6709;&#x7684;&#x5C5E;&#x6027;&#x548C;&#x65B9;&#x6CD5;&#x3002;</li>
</ul>
<h3 id="&#x7EE7;&#x627F;&#x7684;&#x4F20;&#x9012;&#x6027;">&#x7EE7;&#x627F;&#x7684;&#x4F20;&#x9012;&#x6027;</h3>
<p>Dog&#x7C7B;&#x7EE7;&#x627F;&#x81EA;Animal,XiaoTianQuan&#x53C8;&#x7EE7;&#x627F;&#x81EA;Dog&#x7C7B;&#xFF0C;&#x90A3;&#x4E48;XiaoTianQuan&#x7C7B;&#x5C31;&#x5177;&#x6709;&#x4E86;Animal&#x7C7B;&#x91CC;&#x7684;&#x6240;&#x6709;&#x5C5E;&#x6027;&#x548C;&#x65B9;&#x6CD5;&#x3002;</p>
<p>&#x5B50;&#x7C7B;&#x62E5;&#x6709;&#x7236;&#x7C7B;&#x4EE5;&#x53CA;&#x7236;&#x7C7B;&#x7684;&#x7236;&#x7C7B;&#x4E2D;&#x5C01;&#x88C5;&#x7684;&#x6240;&#x6709;&#x5C5E;&#x6027;&#x548C;&#x65B9;&#x6CD5;&#x3002;</p>
<p>&#x601D;&#x8003;:</p>
<blockquote>
<p>XiaoTianQuan&#x80FD;&#x5426;&#x8C03;&#x7528;Animal&#x7684;run()&#x65B9;&#x6CD5;&#xFF1F;
XiaoTianQUan&#x80FD;&#x591F;&#x8C03;&#x7528;Cat&#x91CC;&#x7684;&#x65B9;&#x6CD5;&#xFF1F;</p>
</blockquote>
<h2 id="&#x591A;&#x7EE7;&#x627F;">&#x591A;&#x7EE7;&#x627F;</h2>
<p>&#x5B50;&#x7C7B;&#x53EF;&#x4EE5;&#x62E5;&#x6709;&#x591A;&#x4E2A;&#x7236;&#x7C7B;&#xFF0C;&#x5E76;&#x4E14;&#x5177;&#x6709;&#x6240;&#x6709;&#x7236;&#x7C7B;&#x7684;&#x5C5E;&#x6027;&#x548C;&#x65B9;&#x6CD5;&#x3002;</p>
<p><img src="imgs/&#x591A;&#x7EE7;&#x627F;.png" alt=""></p>
<p>&#x8BED;&#x6CD5;&#x683C;&#x5F0F;&#xFF1A;</p>
<pre><code class="lang-pyth">class &#x5B50;&#x7C7B;&#x540D;(&#x7236;&#x7C7B;&#x540D;1,&#x7236;&#x7C7B;&#x540D;2...)
    pass
</code></pre>
<h3 id="&#x591A;&#x7EE7;&#x627F;&#x7684;&#x4F7F;&#x7528;&#x6CE8;&#x610F;&#x4E8B;&#x9879;">&#x591A;&#x7EE7;&#x627F;&#x7684;&#x4F7F;&#x7528;&#x6CE8;&#x610F;&#x4E8B;&#x9879;</h3>
<p>&#x601D;&#x8003;:</p>
<blockquote>
<p>&#x5982;&#x679C;&#x4E0D;&#x540C;&#x7684;&#x7236;&#x7C7B;&#x4E2D;&#x5B58;&#x5728;&#x540C;&#x540D;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x5B50;&#x7C7B;&#x5BF9;&#x8C61;&#x5728;&#x8C03;&#x7528;&#x65B9;&#x6CD5;&#x65F6;&#xFF0C;&#x4F1A;&#x8C03;&#x7528;&#x54EA;&#x4E2A;&#x7236;&#x7C7B;&#x7684;&#x65B9;&#x6CD5;&#xFF1F;
&#x8BF4;&#x660E;&#xFF1A;&#x5F00;&#x53D1;&#x4E2D;&#xFF0C;&#x5E94;&#x8BE5;&#x5C3D;&#x91CF;&#x907F;&#x514D;&#x8FD9;&#x79CD;&#x5BB9;&#x6613;&#x4EA7;&#x751F;&#x6DF7;&#x6DC6;&#x7684;&#x60C5;&#x51B5;&#x3002;&#x5982;&#x679C;&#x591A;&#x4E2A;&#x7236;&#x7C7B;&#x4E4B;&#x95F4;&#x5B58;&#x5728;&#x540C;&#x540D;&#x7684;&#x5C5E;&#x6027;&#x540E;&#x8005;&#x65B9;&#x6CD5;&#xFF0C;&#x5E94;&#x8BE5;&#x5C3D;&#x91CF;&#x907F;&#x514D;&#x4F7F;&#x7528;&#x591A;&#x7EE7;&#x627F;&#x3002;</p>
</blockquote>
<p><img src="imgs/&#x591A;&#x7EE7;&#x627F;II.png" alt=""></p>
<h2 id="python&#x4E2D;&#x7684;mro">Python&#x4E2D;&#x7684;MRO</h2>
<ul>
<li>Python&#x4E2D;&#x9488;&#x5BF9;&#x7C7B;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E2A;&#x5185;&#x7F6E;&#x5C5E;&#x6027;<code>__mro__</code>&#x53EF;&#x4EE5;&#x7528;&#x6765;&#x67E5;&#x770B;&#x65B9;&#x6CD5;&#x7684;&#x641C;&#x7D22;&#x987A;&#x5E8F;&#x3002;</li>
<li>MRO &#x662F;<code>method resolution order</code>&#x7684;&#x7B80;&#x79F0;&#xFF0C;&#x4E3B;&#x8981;&#x7528;&#x4E8E;&#x5728;&#x591A;&#x7EE7;&#x627F;&#x65F6;&#x5224;&#x65AD;&#x65B9;&#x6CD5;&#x5C5E;&#x6027;&#x7684;&#x8C03;&#x7528;&#x987A;&#x5E8F;&#x3002;</li>
</ul>
<pre><code class="lang-python">print(C.__mro__)
</code></pre>
<p>&#x8F93;&#x51FA;&#x7ED3;&#x679C;:</p>
<pre><code class="lang-python">(&lt;class &apos;__main__.C&apos;&gt;, &lt;class &apos;__main__.A&apos;&gt;, &lt;class &apos;__main__.B&apos;&gt;, &lt;class &apos;object&apos;&gt;)
</code></pre>
<ul>
<li>&#x5728;&#x8C03;&#x7528;&#x65B9;&#x6CD5;&#x65F6;&#xFF0C;&#x6309;&#x7167;<code>__mro__</code>&#x7684;&#x8F93;&#x51FA;&#x7ED3;&#x679C;&#x4ECE;&#x5DE6;&#x81F3;&#x53F3;&#x7684;&#x987A;&#x5E8F;&#x67E5;&#x627E;&#x3002;</li>
<li>&#x5982;&#x679C;&#x518D;&#x5F53;&#x524D;&#x7C7B;&#x4E2D;&#x627E;&#x5230;&#x65B9;&#x6CD5;&#xFF0C;&#x5C31;&#x76F4;&#x63A5;&#x6267;&#x884C;&#xFF0C;&#x4E0D;&#x518D;&#x5411;&#x4E0B;&#x641C;&#x7D22;&#x3002;</li>
<li>&#x5982;&#x679C;&#x6CA1;&#x6709;&#x627E;&#x5230;&#xFF0C;&#x5C31;&#x987A;&#x5E8F;&#x67E5;&#x627E;&#x4E0B;&#x4E00;&#x4E2A;&#x7C7B;&#x4E2D;&#x662F;&#x5426;&#x6709;&#x5BF9;&#x5E94;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x5982;&#x679C;&#x627E;&#x5230;&#xFF0C;&#x5C31;&#x76F4;&#x63A5;&#x6267;&#x884C;&#xFF0C;&#x4E0D;&#x518D;&#x7EE7;&#x7EED;&#x5411;&#x4E0B;&#x641C;&#x7D22;&#x3002;</li>
<li>&#x5982;&#x679C;&#x627E;&#x5230;&#x4E86;&#x6700;&#x540E;&#x4E00;&#x4E2A;&#x7C7B;&#xFF0C;&#x4F9D;&#x7136;&#x6CA1;&#x6709;&#x627E;&#x5230;&#x65B9;&#x6CD5;&#xFF0C;&#x7A0B;&#x5E8F;&#x5C31;&#x4F1A;&#x62A5;&#x9519;&#x3002;</li>
</ul>
<h2 id="&#x65B0;&#x5F0F;&#x7C7B;&#x548C;&#x65E7;&#x5F0F;&#xFF08;&#x7ECF;&#x5178;&#xFF09;&#x7C7B;">&#x65B0;&#x5F0F;&#x7C7B;&#x548C;&#x65E7;&#x5F0F;&#xFF08;&#x7ECF;&#x5178;&#xFF09;&#x7C7B;</h2>
<p><code>object</code>&#x662F;Python&#x4E2D;&#x6240;&#x6709;&#x5BF9;&#x8C61;&#x7684;&#x57FA;&#x7C7B;&#xFF0C;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E9B;&#x5185;&#x7F6E;&#x7684;&#x5C5E;&#x6027;&#x548C;&#x65B9;&#x6CD5;&#xFF0C;&#x53EF;&#x4EE5;&#x65F6;&#x5019;&#x7528;<code>dir</code>&#x51FD;&#x6570;&#x67E5;&#x770B;&#x3002;</p>
<ul>
<li>&#x65B0;&#x5F0F;&#x7C7B;&#xFF1A;&#x4EE5;<code>object</code>&#x4E3A;&#x57FA;&#x7C7B;&#x7684;&#x7C7B;&#xFF0C;<strong>&#x63A8;&#x8350;&#x4F7F;&#x7528;</strong></li>
<li>&#x7ECF;&#x5178;&#x7C7B;&#xFF1A;&#x4E0D;&#x4EE5;object&#x4E3A;&#x57FA;&#x7C7B;&#x7684;&#x7C7B;&#xFF0C;<strong>&#x4E0D;&#x63A8;&#x8350;&#x4F7F;&#x7528;</strong></li>
<li>&#x5728; Python3.x &#x4EE5;&#x540E;&#x5B9A;&#x4E49;&#x7C7B;&#x65F6;&#xFF0C;&#x5982;&#x679C;&#x6CA1;&#x6709;&#x6307;&#x5B9A;&#x7236;&#x7C7B;&#xFF0C;&#x8FD9;&#x4E2A;&#x7C7B;&#x4F1A;&#x9ED8;&#x8BA4;&#x7EE7;&#x627F;&#x81EA; object,&#x6240;&#x4EE5;&#xFF0C;python3.x&#x7248;&#x672C;&#x5B9A;&#x4E49;&#x7684;&#x7C7B;&#x90FD;&#x662F;&#x65B0;&#x5F0F;&#x7C7B;&#x3002;</li>
<li>&#x5728;Python2.x&#x4E2D;&#x5B9A;&#x4E49;&#x7C7B;&#x65F6;&#xFF0C;&#x5982;&#x679C;&#x6CA1;&#x6709;&#x6307;&#x5B9A;&#x7236;&#x7C7B;&#xFF0C;&#x5219;&#x4E0D;&#x4F1A;&#x7EE7;&#x627F;&#x81EA;object.</li>
</ul>
<p>&#x4E3A;&#x4E86;&#x4FDD;&#x8BC1;&#x4EE3;&#x7801;&#x5728;Python2.x&#x548C;Python3.x&#x4E2D;&#x90FD;&#x80FD;&#x591F;&#x8FD0;&#x884C;&#xFF0C;&#x5728;&#x5B9A;&#x4E49;&#x7C7B;&#x65F6;&#xFF0C;&#x5982;&#x679C;&#x4E00;&#x4E2A;&#x7C7B;&#x6CA1;&#x6709;&#x7236;&#x7C7B;&#xFF0C;&#x5EFA;&#x8BAE;&#x7EDF;&#x4E00;&#x7EE7;&#x627F;&#x81EA;&apos;object&apos;</p>
<pre><code class="lang-python"><span class="hljs-class"><span class="hljs-keyword">class</span> &#x7C7B;&#x540D;<span class="hljs-params">(object)</span>:</span>
    <span class="hljs-keyword">pass</span>
</code></pre>

                    
                    </section>
                
                
                </div>
            </div>
        </div>

        
        <a href="./chapter03.html" class="navigation navigation-prev " aria-label="Previous page: 继承的基本使用"><i class="fa fa-angle-left"></i></a>
        
        
        <a href="./chapter05.html" class="navigation navigation-next " aria-label="Next page: 对象相关的运算符和内置函数"><i class="fa fa-angle-right"></i></a>
        
    </div>
</div>

        
<script src="gitbook/app.js"></script>

    
    <script src="gitbook/plugins/gitbook-plugin-splitter/splitter.js"></script>
    

    
    <script src="gitbook/plugins/gitbook-plugin-copy-code-button/toggle.js"></script>
    

    
    <script src="gitbook/plugins/gitbook-plugin-toggle-chapters/toggle.js"></script>
    

    
    <script src="gitbook/plugins/gitbook-plugin-fontsettings/buttons.js"></script>
    

<script>
require(["gitbook"], function(gitbook) {
    var config = {"prism":{},"splitter":{},"copy-code-button":{},"toggle-chapters":{},"highlight":{},"fontsettings":{"theme":"white","family":"sans","size":2}};
    gitbook.start(config);
});
</script>

        <!-- body:end -->
<!-- body:end -->
    </body>
    <!-- End of book Python基础 -->
<!-- End of book Python基础 -->
</html>
